//
//  SLBaseTabbleViewController.swift
//  0319iOSweiboDemo
//
//  Created by Tang on 16/3/20.
//  Copyright © 2016年 大天朝. All rights reserved.
//

import UIKit

//实现代理协议.需要实现协议里的方法(可以写在下面的扩展里)
//class SLBaseTabbleViewController: UITableViewController, SLVistorViewDelegate
class SLBaseTabbleViewController: UITableViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        
    }
    
        //用户是否登录标志
        var userLogin = SLUserAccountViewModel.sharedInstance.userLogin
        
        override func loadView() {
            userLogin ? super.loadView() : setupVisitorView()
        
    }

    //设置访客视图
    private func setupVisitorView() {
        //替换根视图
        view = visitorView
        
        //5.设置访客视图代理.必须实现代理协议
        visitorView.delegate = self
        
        //在这根据不同的控制器来设置不同的访客视图内容
        //is: 判断对象是否某个类型
        if self is SLHomeViewController {
            visitorView.startRotation()
        } else if self is SLMessageViewController {
            visitorView.setupVisitor("visitordiscover_image_message", message: "登录后,别人评论你的微博,发给你的消息,都会在这里收到通知")
        } else if self is SLDiscoverViewConroller {
            visitorView.setupVisitor("visitordiscover_feed_image_house", message: "登录后,最新.最热微博尽在掌握,不再会与实事潮流擦肩而过")
        } else if self is SLProfileViewController {
            visitorView.setupVisitor("visitordiscover_image_profile", message: "登录后,你在微博.相册.个人资料会显示在这里,展示给别人")
        }
        
        //导航栏的按钮不是根据导航控制器的.跟导航控制器当前正在显示的子控制器相关
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidCilickRegisterButton")
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidCilickLoginButton")
    }
    
    
        
    //MARK: 自定义访客视图
    lazy var visitorView: SLVistorView = SLVistorView()
}

//MARK: - extension扩展.可以在扩展里面实现协议
extension SLBaseTabbleViewController: SLVistorViewDelegate {
    /*
    //扩展里面不能放存储属性
    //var name: String?
    
    //扩展里面可以存放计算性属性
    var name: String {
        get {
            
        }
        set {
            
        }
    }
    */
    
    //MARK: - 实现代理方法
    //6.实现代理方法
    func visitorViewDidCilickRegisterButton() {
        
    }
    
    func visitorViewDidCilickLoginButton() {
        //弹出登录界面
        let oauthVC = SLOauthViewController()
        
        //Modal出控制器
        presentViewController(UINavigationController(rootViewController: oauthVC), animated: true, completion: nil)
    }
}

